home *** CD-ROM | disk | FTP | other *** search
- /* vibgroup.c
- * ===========================================================================
- *
- * PUBLIC DOMAIN NOTICE
- * National Center for Biotechnology Information (NCBI)
- *
- * This software/database is a "United States Government Work" under the
- * terms of the United States Copyright Act. It was written as part of
- * the author's official duties as a United States Government employee and
- * thus cannot be copyrighted. This software/database is freely available
- * to the public for use. The National Library of Medicine and the U.S.
- * Government do not place any restriction on its use or reproduction.
- * We would, however, appreciate having the NCBI and the author cited in
- * any work or product based on this material
- *
- * Although all reasonable efforts have been taken to ensure the accuracy
- * and reliability of the software and data, the NLM and the U.S.
- * Government do not and cannot warrant the performance or results that
- * may be obtained by using this software or data. The NLM and the U.S.
- * Government disclaim all warranties, express or implied, including
- * warranties of performance, merchantability or fitness for any particular
- * purpose.
- *
- * ===========================================================================
- *
- * File Name: vibgroup.c
- *
- * Author: Jonathan Kans
- *
- * Version Creation Date: 7/1/91
- *
- * $Revision: 2.15 $
- *
- * File Description:
- * Vibrant group functions
- *
- * Modifications:
- * --------------------------------------------------------------------------
- * Date Name Description of modification
- * ------- ---------- -----------------------------------------------------
- *
- *
- * ==========================================================================
- */
-
- #include <vibtypes.h>
- #include <vibprocs.h>
- #include <vibincld.h>
-
- #ifdef WIN_MAC
- #define Nlm_GroupTool Nlm_PrompT
- #define Nlm_LineTool Nlm_Handle
- #endif
-
- #ifdef WIN_MSWIN
- #define Nlm_GroupTool HWND
- #define Nlm_LineTool Nlm_Handle
- #endif
-
- #ifdef WIN_MOTIF
- #define Nlm_GroupTool Nlm_PrompT
- #define Nlm_LineTool Widget
- #endif
-
- typedef struct Nlm_groupdata {
- Nlm_GroupTool handle;
- Nlm_LineTool left;
- Nlm_LineTool top;
- Nlm_LineTool right;
- Nlm_LineTool bottom;
- } Nlm_GroupData;
-
- typedef struct Nlm_grouprec {
- Nlm_BoxRec boxR;
- Nlm_GroupData group;
- } Nlm_GroupRec, PNTR Nlm_GrpPtr;
-
- static Nlm_GphPrcsPtr gphprcsptr = NULL;
-
- static Nlm_GphPrcsPtr groupProcs;
-
- static Nlm_GrouP recentGroup = NULL;
- static Nlm_GroupData recentGroupData;
-
- static void Nlm_LoadGroupData (Nlm_GrouP g, Nlm_GroupTool hdl,
- Nlm_LineTool lf, Nlm_LineTool tp,
- Nlm_LineTool rt, Nlm_LineTool bt)
-
- {
- Nlm_GrpPtr gp;
- Nlm_GroupData PNTR gptr;
-
- if (g != NULL) {
- gp = (Nlm_GrpPtr) Nlm_HandLock (g);
- gptr = &(gp->group);
- gptr->handle = hdl;
- gptr->left = lf;
- gptr->top = tp;
- gptr->right = rt;
- gptr->bottom = bt;
- Nlm_HandUnlock (g);
- recentGroup = NULL;
- }
- }
-
- static void Nlm_SetGroupData (Nlm_GrouP g, Nlm_GroupData * gdata)
-
- {
- Nlm_GrpPtr gp;
-
- if (g != NULL && gdata != NULL) {
- gp = (Nlm_GrpPtr) Nlm_HandLock (g);
- gp->group = *gdata;
- Nlm_HandUnlock (g);
- recentGroup = g;
- recentGroupData = *gdata;
- }
- }
-
- static void Nlm_GetGroupData (Nlm_GrouP g, Nlm_GroupData * gdata)
-
- {
- Nlm_GrpPtr gp;
-
- if (g != NULL && gdata != NULL) {
- if (g == recentGroup && NLM_RISKY) {
- *gdata = recentGroupData;
- } else {
- gp = (Nlm_GrpPtr) Nlm_HandLock (g);
- *gdata = gp->group;
- Nlm_HandUnlock (g);
- recentGroup = g;
- recentGroupData = *gdata;
- }
- }
- }
-
- static Nlm_GroupTool Nlm_GetGroupHandle (Nlm_GrouP g)
-
- {
- Nlm_GroupData gdata;
-
- Nlm_GetGroupData (g, &gdata);
- return gdata.handle;
- }
-
- #ifdef WIN_MAC
- typedef struct revItem {
- Nlm_GraphiC graphic;
- struct revItem PNTR next;
- } Nlm_RevItem, PNTR Nlm_RevPtr;
-
- static Nlm_Boolean Nlm_GroupClick (Nlm_GraphiC a, Nlm_PoinT pt)
-
- {
- Nlm_GraphiC g;
- Nlm_GraphiC n;
- Nlm_RevPtr next;
- Nlm_Boolean notInside;
- Nlm_RecT r;
- Nlm_Boolean rsult;
- Nlm_RevPtr thisitem;
- Nlm_RevPtr top;
-
- rsult = FALSE;
- Nlm_GetRect (a, &r);
- if (Nlm_PtInRect (pt, &r)) {
- g = Nlm_GetChild (a);
- notInside = TRUE;
- /*
- while (g != NULL && notInside) {
- n = Nlm_GetNext (g);
- if (Nlm_GetEnabled (g) && Nlm_GetVisible (g) && Nlm_DoClick (g, pt)) {
- notInside = FALSE;
- }
- g = n;
- }
- */
- if (g != NULL && notInside) {
- top = NULL;
- while (g != NULL) {
- thisitem = (Nlm_RevPtr) Nlm_MemNew (sizeof (Nlm_RevItem));
- if (thisitem != NULL) {
- thisitem->graphic = g;
- thisitem->next = top;
- top = thisitem;
- }
- g = Nlm_GetNext (g);
- }
- thisitem = top;
- while (thisitem != NULL && notInside) {
- next = thisitem->next;
- g = thisitem->graphic;
- if (Nlm_GetEnabled (g) && Nlm_GetVisible (g) && Nlm_DoClick (g, pt)) {
- notInside = FALSE;
- }
- thisitem = next;
- }
- thisitem = top;
- while (thisitem != NULL) {
- next = thisitem->next;
- Nlm_MemFree (thisitem);
- thisitem = next;
- }
- }
- rsult = (! notInside);
- }
- return rsult;
- }
-
- static Nlm_Boolean Nlm_GroupKey (Nlm_GraphiC a, Nlm_Char ch)
-
- {
- Nlm_GraphiC g;
- Nlm_GraphiC n;
- Nlm_Boolean notInside;
-
- g = Nlm_GetChild (a);
- notInside = TRUE;
- while (g != NULL && notInside) {
- n = Nlm_GetNext (g);
- if (Nlm_GetEnabled (g) && Nlm_GetVisible (g) && Nlm_DoKey (g, ch)) {
- notInside = FALSE;
- }
- g = n;
- }
- return (! notInside);
- }
-
- static void Nlm_DrawGroup (Nlm_GraphiC a)
-
- {
- Nlm_GraphiC g;
- Nlm_GroupTool h;
- Nlm_RecT r;
-
- if (Nlm_GetVisible (a) && Nlm_GetAllParentsVisible (a)) {
- Nlm_GetRect (a, &r);
- Nlm_InsetRect (&r, -4, -4);
- if (Nlm_RectInRgn (&r, Nlm_updateRgn)) {
- Nlm_InsetRect (&r, 4, 4);
- h = Nlm_GetGroupHandle ((Nlm_GrouP) a);
- if (h != NULL) {
- r.top += 6;
- Nlm_FrameRect (&r);
- Nlm_DoDraw ((Nlm_GraphiC) h);
- }
- g = Nlm_GetChild (a);
- while (g != NULL) {
- Nlm_DoDraw (g);
- g = Nlm_GetNext (g);
- }
- }
- }
- }
-
- static Nlm_Boolean Nlm_IdleGroup (Nlm_GraphiC a, Nlm_PoinT pt)
-
- {
- Nlm_GraphiC g;
-
- if (Nlm_GetVisible (a) && Nlm_GetEnabled (a)) {
- g = Nlm_GetChild (a);
- while (g != NULL) {
- Nlm_DoIdle (g, pt);
- g = Nlm_GetNext (g);
- }
- }
- return TRUE;
- }
- #endif
-
- static void Nlm_ShowGroup (Nlm_GraphiC a, Nlm_Boolean setFlag, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC g;
- Nlm_GroupTool h;
- Nlm_WindoW tempPort;
- #ifdef WIN_MAC
- Nlm_RecT r;
- #endif
- #ifdef WIN_MOTIF
- Nlm_GroupData gdata;
- #endif
-
- tempPort = Nlm_SavePortIfNeeded (a, savePort);
- if (setFlag) {
- Nlm_SetVisible (a, TRUE);
- }
- if (Nlm_GetVisible (a) && Nlm_AllParentsButWindowVisible (a)) {
- h = Nlm_GetGroupHandle ((Nlm_GrouP) a);
- if (h != NULL) {
- #ifdef WIN_MAC
- if (Nlm_GetAllParentsVisible (a)) {
- Nlm_GetRect (a, &r);
- r.top += 6;
- Nlm_FrameRect (&r);
- }
- Nlm_DoShow ((Nlm_GraphiC) h, TRUE, FALSE);
- #endif
- #ifdef WIN_MSWIN
- ShowWindow (h, SW_SHOW);
- UpdateWindow (h);
- #endif
- #ifdef WIN_MOTIF
- Nlm_DoShow ((Nlm_GraphiC) h, TRUE, FALSE);
- Nlm_GetGroupData ((Nlm_GrouP) a, &gdata);
- XtManageChild (gdata.left);
- XtManageChild (gdata.top);
- XtManageChild (gdata.right);
- XtManageChild (gdata.bottom);
- #endif
- }
- g = Nlm_GetChild (a);
- while (g != NULL) {
- Nlm_DoShow (g, FALSE, FALSE);
- g = Nlm_GetNext (g);
- }
- }
- Nlm_RestorePort (tempPort);
- }
-
- static void Nlm_HideGroup (Nlm_GraphiC a, Nlm_Boolean setFlag, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC g;
- Nlm_GroupTool h;
- Nlm_WindoW tempPort;
- #ifdef WIN_MAC
- Nlm_RecT r;
- #endif
- #ifdef WIN_MOTIF
- Nlm_GroupData gdata;
- #endif
-
- tempPort = Nlm_SavePortIfNeeded (a, savePort);
- if (Nlm_AllParentsButWindowVisible (a)) {
- h = Nlm_GetGroupHandle ((Nlm_GrouP) a);
- #ifdef WIN_MAC
- if (h != NULL) {
- Nlm_DoHide ((Nlm_GraphiC) h, TRUE, FALSE);
- }
- if (Nlm_GetAllParentsVisible (a)) {
- Nlm_GetRect (a, &r);
- Nlm_InsetRect (&r, -1, -1);
- /*
- Nlm_InvalRect (&r);
- */
- Nlm_EraseRect (&r);
- Nlm_ValidRect (&r);
- }
- #endif
- g = Nlm_GetChild (a);
- while (g != NULL) {
- Nlm_DoHide (g, FALSE, FALSE);
- g = Nlm_GetNext (g);
- }
- #ifdef WIN_MSWIN
- if (h != NULL) {
- ShowWindow (h, SW_HIDE);
- UpdateWindow (h);
- }
- #endif
- #ifdef WIN_MOTIF
- if (h != NULL) {
- Nlm_DoHide ((Nlm_GraphiC) h, TRUE, FALSE);
- Nlm_GetGroupData ((Nlm_GrouP) a, &gdata);
- XtUnmanageChild (gdata.left);
- XtUnmanageChild (gdata.top);
- XtUnmanageChild (gdata.right);
- XtUnmanageChild (gdata.bottom);
- }
- #endif
- }
- if (setFlag) {
- Nlm_SetVisible (a, FALSE);
- }
- Nlm_RestorePort (tempPort);
- }
-
- static void Nlm_EnableGroup (Nlm_GraphiC a, Nlm_Boolean setFlag, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC g;
- Nlm_GroupTool h;
- Nlm_WindoW tempPort;
-
- tempPort = Nlm_SavePortIfNeeded (a, savePort);
- if (setFlag) {
- Nlm_SetEnabled (a, TRUE);
- }
- if (Nlm_GetEnabled (a) && Nlm_GetAllParentsEnabled (a)) {
- h = Nlm_GetGroupHandle ((Nlm_GrouP) a);
- if (h != NULL) {
- #ifdef WIN_MAC
- Nlm_DoEnable ((Nlm_GraphiC) h, TRUE, FALSE);
- #endif
- #ifdef WIN_MSWIN
- EnableWindow (h, TRUE);
- #endif
- #ifdef WIN_MOTIF
- Nlm_DoEnable ((Nlm_GraphiC) h, TRUE, FALSE);
- #endif
- }
- g = Nlm_GetChild (a);
- while (g != NULL) {
- Nlm_DoEnable (g, FALSE, FALSE);
- g = Nlm_GetNext (g);
- }
- }
- Nlm_RestorePort (tempPort);
- }
-
- static void Nlm_DisableGroup (Nlm_GraphiC a, Nlm_Boolean setFlag, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC g;
- Nlm_GroupTool h;
- Nlm_WindoW tempPort;
-
- tempPort = Nlm_SavePortIfNeeded (a, savePort);
- if (setFlag) {
- Nlm_SetEnabled (a, FALSE);
- }
- h = Nlm_GetGroupHandle ((Nlm_GrouP) a);
- if (h != NULL) {
- #ifdef WIN_MAC
- Nlm_DoDisable ((Nlm_GraphiC) h, TRUE, FALSE);
- #endif
- #ifdef WIN_MSWIN
- EnableWindow (h, FALSE);
- #endif
- #ifdef WIN_MOTIF
- Nlm_DoDisable ((Nlm_GraphiC) h, TRUE, FALSE);
- #endif
- }
- g = Nlm_GetChild (a);
- while (g != NULL) {
- Nlm_DoDisable (g, FALSE, FALSE);
- g = Nlm_GetNext (g);
- }
- Nlm_RestorePort (tempPort);
- }
-
- static void Nlm_ActivateGroup (Nlm_GraphiC a, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC g;
-
- g = Nlm_GetChild (a);
- while (g != NULL) {
- Nlm_DoActivate (g, FALSE);
- g = Nlm_GetNext (g);
- }
- }
-
- static void Nlm_DeactivateGroup (Nlm_GraphiC a, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC g;
-
- g = Nlm_GetChild (a);
- while (g != NULL) {
- Nlm_DoDeactivate (g, FALSE);
- g = Nlm_GetNext (g);
- }
- }
-
- static void Nlm_ResetGroup (Nlm_GraphiC a, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC g;
- Nlm_GraphiC n;
- Nlm_WindoW tempPort;
-
- tempPort = Nlm_SavePortIfNeeded (a, savePort);
- g = Nlm_GetChild (a);
- while (g != NULL) {
- n = Nlm_GetNext (g);
- Nlm_DoReset (g, FALSE);
- g = n;
- }
- Nlm_RestorePort (tempPort);
- }
-
- static void Nlm_RemoveGroup (Nlm_GraphiC a, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC g;
- Nlm_GroupTool h;
- Nlm_GraphiC n;
- Nlm_WindoW tempPort;
- #ifdef WIN_MOTIF
- Nlm_GroupData gdata;
- #endif
-
- tempPort = Nlm_SavePortIfNeeded (a, savePort);
- g = Nlm_GetChild (a);
- while (g != NULL) {
- n = Nlm_GetNext (g);
- Nlm_DoRemove (g, FALSE);
- g = n;
- }
- h = Nlm_GetGroupHandle ((Nlm_GrouP) a);
- if (h != NULL) {
- #ifdef WIN_MAC
- Nlm_DoRemove ((Nlm_GraphiC) h, FALSE);
- #endif
- #ifdef WIN_MSWIN
- DestroyWindow (h);
- #endif
- #ifdef WIN_MOTIF
- Nlm_DoRemove ((Nlm_GraphiC) h, FALSE);
- Nlm_GetGroupData ((Nlm_GrouP) a, &gdata);
- XtDestroyWidget (gdata.left);
- XtDestroyWidget (gdata.top);
- XtDestroyWidget (gdata.right);
- XtDestroyWidget (gdata.bottom);
- #endif
- }
- Nlm_RemoveLink (a);
- recentGroup = NULL;
- Nlm_RestorePort (tempPort);
- }
-
- static void Nlm_SetGroupTitle (Nlm_GraphiC a, Nlm_Int2 item,
- Nlm_CharPtr title, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC g;
- Nlm_GroupTool h;
- Nlm_WindoW tempPort;
-
- tempPort = Nlm_SavePortIfNeeded (a, savePort);
- if (item > 0) {
- g = Nlm_FindItem (a, item);
- if (g != NULL) {
- Nlm_DoSetTitle (g, 0, title, FALSE);
- }
- } else {
- h = Nlm_GetGroupHandle ((Nlm_GrouP) a);
- if (h != NULL) {
- #ifdef WIN_MAC
- Nlm_DoSetTitle ((Nlm_GraphiC) h, 0, title, FALSE);
- #endif
- #ifdef WIN_MSWIN
- SetWindowText (h, title);
- #endif
- #ifdef WIN_MOTIF
- #endif
- }
- }
- Nlm_RestorePort (tempPort);
- }
-
- static void Nlm_GetGroupTitle (Nlm_GraphiC a, Nlm_Int2 item,
- Nlm_CharPtr title, Nlm_sizeT maxsize)
-
- {
- Nlm_GraphiC g;
- Nlm_GroupTool h;
- Nlm_Char temp [256];
-
- if (item > 0) {
- g = Nlm_FindItem (a, item);
- if (g != NULL) {
- Nlm_DoGetTitle (g, 0, title, maxsize);
- }
- } else {
- h = Nlm_GetGroupHandle ((Nlm_GrouP) a);
- if (h != NULL) {
- #ifdef WIN_MAC
- Nlm_DoGetTitle ((Nlm_GraphiC) h, 0, title, maxsize);
- #endif
- #ifdef WIN_MSWIN
- GetWindowText (h, temp, sizeof (temp));
- Nlm_StringNCpy (title, temp, maxsize);
- #endif
- #ifdef WIN_MOTIF
- #endif
- }
- }
- }
-
- static void Nlm_SetGroupValue (Nlm_GraphiC a, Nlm_Int2 value, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC g;
- Nlm_WindoW tempPort;
-
- tempPort = Nlm_SavePortIfNeeded (a, savePort);
- if (value > 0) {
- g = Nlm_FindItem (a, value);
- Nlm_ClearItemsInGroup (a, g, FALSE);
- if (g != NULL) {
- Nlm_DoSetStatus (g, 0, TRUE, FALSE);
- }
- } else {
- Nlm_ClearItemsInGroup (a, NULL, FALSE);
- }
- Nlm_RestorePort (tempPort);
- }
-
- static Nlm_Int2 Nlm_GetGroupValue (Nlm_GraphiC a)
-
- {
- Nlm_Boolean found;
- Nlm_GraphiC g;
- Nlm_Int2 i;
- Nlm_Int2 rsult;
-
- rsult = FALSE;
- g = Nlm_GetChild (a);
- i = 0;
- found = FALSE;
- while (g != NULL && ! found) {
- i++;
- found = Nlm_DoGetStatus (g, 0);
- g = Nlm_GetNext (g);
- }
- if (found) {
- rsult = i;
- }
- return rsult;
- }
-
- static void Nlm_SetGroupStatus (Nlm_GraphiC a, Nlm_Int2 item,
- Nlm_Boolean value, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC g;
- Nlm_WindoW tempPort;
-
- tempPort = Nlm_SavePortIfNeeded (a, savePort);
- if (item > 0) {
- g = Nlm_FindItem (a, item);
- if (g != NULL) {
- Nlm_DoSetStatus (g, 0, value, FALSE);
- }
- }
- Nlm_RestorePort (tempPort);
- }
-
- static Nlm_Boolean Nlm_GetGroupStatus (Nlm_GraphiC a, Nlm_Int2 item)
-
- {
- Nlm_GraphiC g;
- Nlm_Boolean rsult;
-
- rsult = FALSE;
- if (item > 0) {
- g = Nlm_FindItem (a, item);
- if (g != NULL) {
- rsult = Nlm_DoGetStatus (g, 0);
- }
- }
- return rsult;
- }
-
- #ifdef WIN_MAC
- static void Nlm_InvalItem (Nlm_GraphiC a)
-
- {
- Nlm_RecT r;
-
- if (Nlm_GetVisible (a) && Nlm_GetAllParentsVisible (a)) {
- Nlm_GetRect (a, &r);
- Nlm_InsetRect (&r, -1, -1);
- Nlm_InvalRect (&r);
- }
- }
- #endif
-
- static void Nlm_InvalGroup (Nlm_GraphiC a)
-
- {
- Nlm_RecT r;
- #ifdef WIN_MSWIN
- Nlm_RectTool rtool;
- Nlm_WindowTool wptr;
- #endif
-
- if (Nlm_GetVisible (a) && Nlm_GetAllParentsVisible (a)) {
- #ifdef WIN_MAC
- Nlm_GetRect (a, &r);
- Nlm_InsetRect (&r, -1, -1);
- Nlm_InvalRect (&r);
- #endif
- #ifdef WIN_MSWIN
- wptr = Nlm_ParentWindowPtr (a);
- Nlm_GetRect (a, &r);
- r.top = r.bottom - 1;
- r.bottom++;
- Nlm_RecTToRectTool (&r, &rtool);
- InvalidateRect (wptr, &rtool, TRUE);
- Nlm_GetRect (a, &r);
- r.left = r.right - 1;
- r.right++;
- Nlm_RecTToRectTool (&r, &rtool);
- InvalidateRect (wptr, &rtool, TRUE);
- #endif
- #ifdef WIN_MOTIF
- #endif
- }
- }
-
- static void Nlm_SetGroupPosition (Nlm_GraphiC a, Nlm_RectPtr r, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC g;
- Nlm_RecT gr;
- Nlm_GroupTool h;
- Nlm_RecT oldRect;
- Nlm_WindoW tempPort;
- Nlm_Int2 deltaX;
- Nlm_Int2 deltaY;
- #ifdef WIN_MAC
- Nlm_Int2 deltaH;
- Nlm_Int2 deltaW;
- #endif
- #ifdef WIN_MOTIF
- Nlm_Int2 deltaH;
- Nlm_Int2 deltaW;
- Nlm_GroupData gdata;
- #endif
-
- if (r != NULL) {
- Nlm_DoGetPosition (a, &oldRect);
- if (! Nlm_EqualRect (r, &oldRect)) {
- tempPort = Nlm_SavePortIfNeeded (a, savePort);
- Nlm_GetRect (a, &oldRect);
- gr = *r;
- deltaX = gr.left - oldRect.left;
- deltaY = gr.top - oldRect.top;
- #ifdef WIN_MAC
- deltaW = (gr.right - gr.left) - (oldRect.right - oldRect.left);
- deltaH = (gr.bottom - gr.top) - (oldRect.bottom - oldRect.top);
- #endif
- #ifdef WIN_MOTIF
- deltaW = (gr.right - gr.left) - (oldRect.right - oldRect.left);
- deltaH = (gr.bottom - gr.top) - (oldRect.bottom - oldRect.top);
- #endif
- Nlm_InvalGroup (a);
- Nlm_SetRect (a, &gr);
- h = Nlm_GetGroupHandle ((Nlm_GrouP) a);
- if (h != NULL) {
- #ifdef WIN_MAC
- Nlm_GetRect ((Nlm_GraphiC) h, &gr);
- Nlm_UpsetRect (&gr, deltaX, deltaY, -deltaX, -deltaY);
- Nlm_DoSetPosition ((Nlm_GraphiC) h, &gr, FALSE);
- #endif
- #ifdef WIN_MSWIN
- MoveWindow (h, gr.left, gr.top, gr.right - gr.left, gr.bottom - gr.top, TRUE);
- #endif
- #ifdef WIN_MOTIF
- Nlm_GetRect ((Nlm_GraphiC) h, &gr);
- Nlm_UpsetRect (&gr, deltaX, deltaY, -deltaX, -deltaY);
- Nlm_DoSetPosition ((Nlm_GraphiC) h, &gr, FALSE);
- Nlm_GetRect (a, &gr);
- gr.top += Nlm_stdLineHeight / 2;
- Nlm_GetGroupData ((Nlm_GrouP) a, &gdata);
- XtVaSetValues (gdata.left,
- XmNx, (Position) gr.left,
- XmNy, (Position) gr.top,
- XmNwidth, (Dimension) 1,
- XmNheight, (Dimension) (gr.bottom - gr.top),
- NULL);
- XtVaSetValues (gdata.top,
- XmNx, (Position) gr.left,
- XmNy, (Position) gr.top,
- XmNwidth, (Dimension) (gr.right - gr.left),
- XmNheight, (Dimension) 1,
- NULL);
- XtVaSetValues (gdata.right,
- XmNx, (Position) gr.right,
- XmNy, (Position) gr.top,
- XmNwidth, (Dimension) 1,
- XmNheight, (Dimension) (gr.bottom - gr.top),
- NULL);
- XtVaSetValues (gdata.bottom,
- XmNx, (Position) gr.left,
- XmNy, (Position) gr.bottom,
- XmNwidth, (Dimension) (gr.right - gr.left + 1),
- XmNheight, (Dimension) 1,
- NULL);
- #endif
- #ifdef WIN_MAC
- Nlm_InvalGroup (a);
- #endif
- }
- g = Nlm_GetChild (a);
- while (g != NULL) {
- Nlm_DoGetPosition (g, &gr);
- Nlm_OffsetRect (&gr, deltaX, deltaY);
- Nlm_DoSetPosition (g, &gr, FALSE);
- g = Nlm_GetNext (g);
- }
- #ifdef WIN_MSWIN
- if (h != NULL) {
- UpdateWindow (h);
- }
- #endif
- #ifdef WIN_MOTIF
- #endif
- Nlm_RestorePort (tempPort);
- }
- }
- }
-
- static void Nlm_GetGroupPosition (Nlm_GraphiC a, Nlm_RectPtr r)
-
- {
- Nlm_RecT gr;
-
- Nlm_GetRect (a, &gr);
- if (r != NULL) {
- *r = gr;
- }
- }
-
- static Nlm_GraphiC Nlm_GroupGainFocus (Nlm_GraphiC a, Nlm_Char ch, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC p;
- Nlm_GraphiC q;
-
- q = NULL;
- if (Nlm_GetVisible (a) && Nlm_GetEnabled (a)) {
- p = Nlm_GetChild (a);
- while (p != NULL && q == NULL) {
- q = Nlm_DoGainFocus (p, ch, savePort);
- p = Nlm_GetNext (p);
- }
- }
- return q;
- }
-
- static void Nlm_GroupLoseFocus (Nlm_GraphiC a, Nlm_GraphiC excpt, Nlm_Boolean savePort)
-
- {
- Nlm_GraphiC p;
-
- p = Nlm_GetChild (a);
- while (p != NULL) {
- Nlm_DoLoseFocus (p, excpt, savePort);
- p = Nlm_GetNext (p);
- }
- }
-
- static void Nlm_RepositionHorizItems (Nlm_GraphiC a, Nlm_Int2 count,
- Nlm_Int2 width, Nlm_Boolean align)
-
- {
- Nlm_BoxData bdata;
- Nlm_Int2 col;
- Nlm_Int2 column;
- Nlm_Int2 curWdt;
- Nlm_GrouP g;
- Nlm_Int2 i;
- Nlm_Int2 newWdt;
- Nlm_Int2 offset;
- Nlm_GraphiC p;
- Nlm_RecT r;
- Nlm_RecT s;
- Nlm_GraphiC top;
- Nlm_RecT topRect;
- Nlm_Int2 topWdt;
-
- column = (count - 1) % width + 1;
- g = (Nlm_GrouP) Nlm_GetParent (a);
- top = Nlm_FindItem ((Nlm_GraphiC) g, column);
- Nlm_DoGetPosition (a, &r);
- Nlm_DoGetPosition (top, &topRect);
- curWdt = r.right - r.left;
- topWdt = topRect.right - topRect.left;
- newWdt = MAX (curWdt, topWdt);
- if (curWdt < newWdt) {
- r.right = r.left + newWdt;
- Nlm_DoSetPosition (a, &r, FALSE);
- curWdt = newWdt;
- }
- if (newWdt > topWdt) {
- offset = newWdt - topWdt;
- i = 1;
- p = Nlm_GetChild ((Nlm_GraphiC) g);
- while (p != NULL) {
- col = (i - 1) % width + 1;
- if (col == column) {
- Nlm_DoGetPosition (p, &r);
- r.right = r.left + newWdt;
- Nlm_DoSetPosition (p, &r, FALSE);
- Nlm_RecordRect ((Nlm_GraphiC) g, &r);
- } else if (col > column) {
- Nlm_DoGetPosition (p, &r);
- Nlm_OffsetRect (&r, offset, 0);
- Nlm_DoSetPosition (p, &r, FALSE);
- Nlm_RecordRect ((Nlm_GraphiC) g, &r);
- }
- i++;
- p = Nlm_GetNext (p);
- }
- }
- Nlm_GetRect ((Nlm_GraphiC) g, &r);
- Nlm_GetRect ((Nlm_GraphiC) g, &s);
- Nlm_GetBoxData ((Nlm_BoX) g, &bdata);
- s.right = MAX (r.right, bdata.limitPoint.x + bdata.xMargin);
- s.bottom = bdata.limitPoint.y + bdata.yMargin;
- Nlm_SetRect ((Nlm_GraphiC) g, &s);
- r.right = bdata.limitPoint.x + bdata.xMargin;
- r.bottom = bdata.limitPoint.y + bdata.yMargin;
- Nlm_DoAdjustPrnt ((Nlm_GraphiC) g, &r, align, FALSE);
- Nlm_DoGetPosition (a, &r);
- bdata.nextCol = r.right + bdata.xSpacing;
- Nlm_SetBoxData ((Nlm_BoX) g, &bdata);
- }
-
- static void Nlm_RepositionVertItems (Nlm_GraphiC a, Nlm_Int2 count,
- Nlm_Int2 height, Nlm_Boolean align)
-
- {
- Nlm_BoxData bdata;
- Nlm_Int2 column;
- Nlm_Int2 curWdt;
- Nlm_GrouP g;
- Nlm_Int2 newWdt;
- Nlm_GraphiC p;
- Nlm_RecT r;
- Nlm_RecT s;
- Nlm_GraphiC top;
- Nlm_RecT topRect;
- Nlm_Int2 topWdt;
-
- column = (count - 1) / height + 1;
- g = (Nlm_GrouP) Nlm_GetParent (a);
- top = Nlm_FindItem ((Nlm_GraphiC) g, (column - 1) * height + 1);
- Nlm_DoGetPosition (a, &r);
- Nlm_DoGetPosition (top, &topRect);
- curWdt = r.right - r.left;
- topWdt = topRect.right - topRect.left;
- newWdt = MAX (curWdt, topWdt);
- if (curWdt < newWdt) {
- r.right = r.left + newWdt;
- Nlm_DoSetPosition (a, &r, FALSE);
- Nlm_RecordRect ((Nlm_GraphiC) g, &r);
- curWdt = newWdt;
- }
- if (newWdt > topWdt) {
- p = top;
- while (p != NULL && p != a) {
- Nlm_DoGetPosition (p, &r);
- r.right = r.left + newWdt;
- Nlm_DoSetPosition (p, &r, FALSE);
- Nlm_RecordRect ((Nlm_GraphiC) g, &r);
- p = Nlm_GetNext (p);
- }
- }
- Nlm_GetRect ((Nlm_GraphiC) g, &r);
- Nlm_GetRect ((Nlm_GraphiC) g, &s);
- Nlm_GetBoxData ((Nlm_BoX) g, &bdata);
- s.right = MAX (r.right, bdata.limitPoint.x + bdata.xMargin);
- s.bottom = bdata.limitPoint.y + bdata.yMargin;
- Nlm_SetRect ((Nlm_GraphiC) g, &s);
- r.right = bdata.limitPoint.x + bdata.xMargin;
- r.bottom = bdata.limitPoint.y + bdata.yMargin;
- Nlm_DoAdjustPrnt ((Nlm_GraphiC) g, &r, align, FALSE);
- Nlm_DoGetPosition (a, &r);
- bdata.nextCol = r.right + bdata.xSpacing;
- Nlm_SetBoxData ((Nlm_BoX) g, &bdata);
- }
-
- static void Nlm_FinishItemPositioning (Nlm_GraphiC a, Nlm_RectPtr subRect,
- Nlm_Boolean align, Nlm_Boolean savePort)
-
- {
- Nlm_BoxData bdata;
- Nlm_Int2 count;
- Nlm_GrouP g;
- Nlm_Int2 height;
- Nlm_RecT r;
- Nlm_RecT s;
- Nlm_WindoW tempPort;
- Nlm_Int2 width;
- #ifdef WIN_MSWIN
- Nlm_GroupTool h;
- #endif
- #ifdef WIN_MOTIF
- Nlm_GroupData gdata;
- Nlm_RecT gr;
- Nlm_GroupTool h;
- #endif
-
- tempPort = Nlm_SavePortIfNeeded (a, savePort);
- g = (Nlm_GrouP) Nlm_GetParent (a);
- Nlm_InvalGroup ((Nlm_GraphiC) g);
- Nlm_RecordRect ((Nlm_GraphiC) g, subRect);
- if (align) {
- Nlm_GetBoxData ((Nlm_BoX) g, &bdata);
- if (bdata.boxWidth != 0 || bdata.boxHeight != 0) {
- Nlm_NextPosition ((Nlm_GraphiC) g, subRect);
- }
- }
- Nlm_GetRect ((Nlm_GraphiC) g, &r);
- Nlm_GetRect ((Nlm_GraphiC) g, &s);
- Nlm_GetBoxData ((Nlm_BoX) g, &bdata);
- s.right = MAX (r.right, bdata.limitPoint.x + bdata.xMargin);
- s.bottom = bdata.limitPoint.y + bdata.yMargin;
- Nlm_SetRect ((Nlm_GraphiC) g, &s);
- r.right = bdata.limitPoint.x + bdata.xMargin;
- r.bottom = bdata.limitPoint.y + bdata.yMargin;
- Nlm_DoAdjustPrnt ((Nlm_GraphiC) g, &r, align, FALSE);
- if (align) {
- count = Nlm_CountGroupItems ((Nlm_GraphiC) g);
- width = bdata.boxWidth;
- height = bdata.boxHeight;
- if (width != 0) {
- if (width > 0 && count > width) {
- Nlm_RepositionHorizItems (a, count, width, align);
- }
- Nlm_Advance ((Nlm_GraphiC) g);
- if ((count % ABS (width)) == 0) {
- Nlm_Break ((Nlm_GraphiC) g);
- }
- } else if (height != 0) {
- if (height > 0 && count > 1) {
- Nlm_RepositionVertItems (a, count, height, align);
- }
- if ((count % ABS (height)) == 0) {
- Nlm_Advance ((Nlm_GraphiC) g);
- }
- }
- }
- #ifdef WIN_MAC
- Nlm_InvalGroup ((Nlm_GraphiC) g);
- Nlm_InvalItem (a);
- #endif
- #ifdef WIN_MSWIN
- Nlm_GetRect ((Nlm_GraphiC) g, &r);
- h = Nlm_GetGroupHandle (g);
- if (h != NULL) {
- MoveWindow (h, r.left, r.top, r.right - r.left, r.bottom - r.top, TRUE);
- UpdateWindow (h);
- }
- #endif
- #ifdef WIN_MOTIF
- h = Nlm_GetGroupHandle (g);
- if (h != NULL) {
- Nlm_GetRect ((Nlm_GraphiC) g, &gr);
- gr.top += Nlm_stdLineHeight / 2;
- Nlm_GetGroupData ((Nlm_GrouP) g, &gdata);
- XtVaSetValues (gdata.left,
- XmNx, (Position) gr.left,
- XmNy, (Position) gr.top,
- XmNwidth, (Dimension) 1,
- XmNheight, (Dimension) (gr.bottom - gr.top),
- NULL);
- XtVaSetValues (gdata.top,
- XmNx, (Position) gr.left,
- XmNy, (Position) gr.top,
- XmNwidth, (Dimension) (gr.right - gr.left),
- XmNheight, (Dimension) 1,
- NULL);
- XtVaSetValues (gdata.right,
- XmNx, (Position) gr.right,
- XmNy, (Position) gr.top,
- XmNwidth, (Dimension) 1,
- XmNheight, (Dimension) (gr.bottom - gr.top),
- NULL);
- XtVaSetValues (gdata.bottom,
- XmNx, (Position) gr.left,
- XmNy, (Position) gr.bottom,
- XmNwidth, (Dimension) (gr.right - gr.left + 1),
- XmNheight, (Dimension) 1,
- NULL);
- }
- #endif
- Nlm_RestorePort (tempPort);
- }
-
- #ifdef WIN_MOTIF
- static Nlm_LineTool Nlm_CreateSeparator (Nlm_GrouP g, Nlm_RectPtr gr, Nlm_Int2 which)
-
- {
- Nlm_LineTool h;
- Dimension height;
- Cardinal n;
- unsigned char orient;
- Nlm_RecT r;
- unsigned char separat;
- Arg wargs [20];
- Dimension width;
- Nlm_WindowTool wptr;
-
- r = *gr;
- r.top += Nlm_stdLineHeight / 2;
- switch (which) {
- case 1:
- orient = XmVERTICAL;
- separat = XmSINGLE_LINE;
- r.right = r.left;
- width = (Dimension) 1;
- height = (Dimension) (r.bottom - r.top);
- break;
- case 2:
- orient = XmHORIZONTAL;
- separat = XmSINGLE_LINE;
- r.bottom = r.top;
- width = (Dimension) (r.right - r.left);
- height = (Dimension) 1;
- break;
- case 3:
- orient = XmVERTICAL;
- separat = XmSINGLE_LINE;
- r.left = r.right;
- width = (Dimension) 1;
- height = (Dimension) (r.bottom - r.top);
- break;
- case 4:
- orient = XmHORIZONTAL;
- separat = XmSINGLE_LINE;
- r.top = r.bottom;
- width = (Dimension) (r.right - r.left + 1);
- height = (Dimension) 1;
- break;
- default:
- width = (Dimension) (r.right - r.left);
- height = (Dimension) (r.bottom - r.top);
- orient = XmHORIZONTAL;
- separat = XmSINGLE_LINE;
- break;
- }
- n = 0;
- XtSetArg (wargs [n], XmNx, (Position) r.left); n++;
- XtSetArg (wargs [n], XmNy, (Position) r.top); n++;
- XtSetArg (wargs [n], XmNwidth, (Dimension) width); n++;
- XtSetArg (wargs [n], XmNheight, (Dimension) height); n++;
- XtSetArg (wargs [n], XmNmarginHeight, 0); n++;
- XtSetArg (wargs [n], XmNmarginWidth, 0); n++;
- XtSetArg (wargs [n], XmNborderWidth, (Dimension) 0); n++;
- XtSetArg (wargs [n], XmNmargin, (Dimension) 0); n++;
- XtSetArg (wargs [n], XmNhighlightThickness, (Dimension) 0); n++;
- XtSetArg (wargs [n], XmNshadowThickness, (Dimension) 0); n++;
- XtSetArg (wargs [n], XmNorientation, orient); n++;
- XtSetArg (wargs [n], XmNseparatorType, separat); n++;
- wptr = Nlm_ParentWindowPtr ((Nlm_GraphiC) g);
- h = XmCreateSeparator (wptr, (String) "", wargs, n);
- if (NLM_QUIET) {
- if (Nlm_WindowHasBeenShown (Nlm_ParentWindow (g))) {
- XtRealizeWidget (h);
- }
- } else {
- XtRealizeWidget (h);
- }
- return h;
- }
- #endif
-
- static void Nlm_NewGroup (Nlm_GrouP g, Nlm_CharPtr title,
- Nlm_Int2 width, Nlm_Int2 height,
- Nlm_Boolean visible, Nlm_RectPtr pr,
- Nlm_FonT font, Nlm_GrpActnProc actn)
-
- {
- Nlm_LineTool bt;
- Nlm_GroupTool h;
- Nlm_LineTool lf;
- Nlm_PoinT pt;
- Nlm_RecT r;
- Nlm_LineTool rt;
- Nlm_LineTool tp;
- #ifdef WIN_MSWIN
- Nlm_FntPtr fntptr;
- Nlm_WindowTool wptr;
- #endif
-
- lf = NULL;
- tp = NULL;
- rt = NULL;
- bt = NULL;
- Nlm_GetRect ((Nlm_GraphiC) g, &r);
- if (visible) {
- pt.x = r.left + 3;
- pt.y = r.top + Nlm_LineHeight () + 2;
- } else {
- pt.x = r.left;
- pt.y = r.top;
- }
- if (visible) {
- Nlm_LoadBoxData ((Nlm_BoX) g, pt, pt, pt, pt.y, pt.x, 3, 3, 3, 2, width, height);
- } else {
- Nlm_LoadBoxData ((Nlm_BoX) g, pt, pt, pt, pt.y, pt.x, 0, 0, 3, 2, width, height);
- }
- h = NULL;
- if (visible) {
- #ifdef WIN_MAC
- h = Nlm_DependentPrompt ((Nlm_GraphiC) g, pr, title, font, 'l');
- #endif
- #ifdef WIN_MSWIN
- wptr = Nlm_ParentWindowPtr ((Nlm_GraphiC) g);
- h = CreateWindow ("Button", title, WS_CHILD | BS_GROUPBOX,
- r.left, r.top, r.right - r.left,
- r.bottom - r.top, wptr, 0,
- Nlm_currentHInst, NULL);
- if (font != NULL) {
- fntptr = (Nlm_FntPtr) Nlm_HandLock (font);
- if (fntptr != NULL && fntptr->handle != NULL) {
- SetWindowFont (h, fntptr->handle, FALSE);
- }
- Nlm_HandUnlock (font);
- }
- #endif
- #ifdef WIN_MOTIF
- h = Nlm_DependentPrompt ((Nlm_GraphiC) g, pr, title, font, 'l');
- lf = Nlm_CreateSeparator (g, &r, 1);
- tp = Nlm_CreateSeparator (g, &r, 2);
- rt = Nlm_CreateSeparator (g, &r, 3);
- bt = Nlm_CreateSeparator (g, &r, 4);
- #endif
- }
- Nlm_LoadGroupData (g, h, lf, tp, rt, bt);
- Nlm_LoadAction ((Nlm_GraphiC) g, (Nlm_ActnProc) actn);
- }
-
- static Nlm_GrouP Nlm_CreateGroup (Nlm_GrouP prnt, Nlm_Int2 recordSize,
- Nlm_Int2 width, Nlm_Int2 height,
- Nlm_Boolean visible, Nlm_CharPtr title,
- Nlm_FonT font, Nlm_GrpActnProc actn)
-
- {
- Nlm_GrouP g;
- Nlm_PoinT npt;
- Nlm_RecT pr;
- Nlm_RecT r;
- Nlm_WindoW tempPort;
- Nlm_Int2 top;
- Nlm_Int2 wid;
-
- g = NULL;
- if (prnt != NULL) {
- tempPort = Nlm_SavePort ((Nlm_GraphiC) prnt);
- Nlm_GetNextPosition ((Nlm_GraphiC) prnt, &npt);
- if (font == NULL) {
- font = Nlm_systemFont;
- }
- Nlm_SelectFont (font);
- wid = Nlm_StringWidth (title);
- #ifdef WIN_MAC
- top = Nlm_LineHeight ();
- #endif
- #ifdef WIN_MSWIN
- top = Nlm_LineHeight ();
- #endif
- #ifdef WIN_MOTIF
- top = Nlm_LineHeight ();
- #endif
- if (visible) {
- Nlm_LoadRect (&r, npt.x, npt.y, npt.x + wid + 20, npt.y + 23);
- } else {
- Nlm_LoadRect (&r, npt.x, npt.y, npt.x, npt.y);
- }
- g = (Nlm_GrouP) Nlm_CreateLink ((Nlm_GraphiC) prnt, &r, recordSize, groupProcs);
- if (g != NULL) {
- Nlm_GetRect ((Nlm_GraphiC) g, &r);
- Nlm_LoadRect (&pr, r.left + 4, r.top, r.left + wid + 6, r.top + top);
- Nlm_NewGroup (g, title, width, height, visible, &pr, font, actn);
- Nlm_DoAdjustPrnt ((Nlm_GraphiC) g, &r, TRUE, FALSE);
- Nlm_DoShow ((Nlm_GraphiC) g, TRUE, FALSE);
- }
- Nlm_RestorePort (tempPort);
- }
- return g;
- }
-
- extern Nlm_GrouP Nlm_NormalGroup (Nlm_GrouP prnt, Nlm_Int2 width,
- Nlm_Int2 height, Nlm_CharPtr title,
- Nlm_FonT font, Nlm_GrpActnProc actn)
-
- {
- Nlm_GrouP g;
-
- g = Nlm_CreateGroup (prnt, sizeof (Nlm_GroupRec), width,
- height, TRUE, title, font, actn);
- return g;
- }
-
- extern Nlm_GrouP Nlm_HiddenGroup (Nlm_GrouP prnt, Nlm_Int2 width,
- Nlm_Int2 height, Nlm_GrpActnProc actn)
-
- {
- Nlm_GrouP g;
-
- g = Nlm_CreateGroup (prnt, sizeof (Nlm_GroupRec), width,
- height, FALSE, "", NULL, actn);
- return g;
- }
-
- extern void Nlm_SetGroupMargins (Nlm_GrouP g, Nlm_Int2 xMargin, Nlm_Int2 yMargin)
-
- {
- Nlm_BoxData bdata;
- Nlm_GroupTool h;
- Nlm_PoinT pt;
- Nlm_RecT r;
-
- if (g != NULL) {
- Nlm_GetRect ((Nlm_GraphiC) g, &r);
- Nlm_GetBoxData ((Nlm_BoX) g, &bdata);
- bdata.xMargin = xMargin;
- bdata.yMargin = yMargin;
- h = Nlm_GetGroupHandle (g);
- if (h != NULL) {
- pt.x = r.left + xMargin;
- pt.y = r.top + Nlm_stdLineHeight + yMargin;
- } else {
- pt.x = r.left + xMargin;
- pt.y = r.top + yMargin;
- }
- bdata.nextPoint = pt;
- bdata.limitPoint = pt;
- bdata.resetPoint = pt;
- bdata.nextCol = pt.x;
- bdata.topRow = pt.y;
- Nlm_SetBoxData ((Nlm_BoX) g, &bdata);
- }
- }
-
- extern void Nlm_SetGroupSpacing (Nlm_GrouP g, Nlm_Int2 xSpacing, Nlm_Int2 ySpacing)
-
- {
- Nlm_BoxData bdata;
-
- if (g != NULL) {
- Nlm_GetBoxData ((Nlm_BoX) g, &bdata);
- bdata.xSpacing = xSpacing;
- bdata.ySpacing = ySpacing;
- Nlm_SetBoxData ((Nlm_BoX) g, &bdata);
- }
- }
-
- extern void Nlm_FreeGroup (void)
-
- {
- gphprcsptr = (Nlm_GphPrcsPtr) Nlm_MemFree (gphprcsptr);
- }
-
- extern void Nlm_InitGroup (void)
-
- {
- gphprcsptr = (Nlm_GphPrcsPtr) Nlm_MemNew (sizeof (Nlm_GphPrcs) * 1);
-
- groupProcs = &(gphprcsptr [0]);
- #ifdef WIN_MAC
- groupProcs->click = Nlm_GroupClick;
- groupProcs->key = Nlm_GroupKey;
- groupProcs->draw = Nlm_DrawGroup;
- groupProcs->idle = Nlm_IdleGroup;
- #endif
- groupProcs->show = Nlm_ShowGroup;
- groupProcs->hide = Nlm_HideGroup;
- groupProcs->enable = Nlm_EnableGroup;
- groupProcs->disable = Nlm_DisableGroup;
- groupProcs->activate = Nlm_ActivateGroup;
- groupProcs->deactivate = Nlm_DeactivateGroup;
- groupProcs->remove = Nlm_RemoveGroup;
- groupProcs->reset = Nlm_ResetGroup;
- groupProcs->countItems = Nlm_CountGroupItems;
- groupProcs->linkIn = Nlm_LinkIn;
- groupProcs->adjustPrnt = Nlm_FinishItemPositioning;
- groupProcs->setTitle = Nlm_SetGroupTitle;
- groupProcs->getTitle = Nlm_GetGroupTitle;
- groupProcs->setValue = Nlm_SetGroupValue;
- groupProcs->getValue = Nlm_GetGroupValue;
- groupProcs->setStatus = Nlm_SetGroupStatus;
- groupProcs->getStatus = Nlm_GetGroupStatus;
- groupProcs->setPosition = Nlm_SetGroupPosition;
- groupProcs->getPosition = Nlm_GetGroupPosition;
- groupProcs->gainFocus = Nlm_GroupGainFocus;
- groupProcs->loseFocus = Nlm_GroupLoseFocus;
- }
-